home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / chest / code.lua next >
Encoding:
Text File  |  2005-07-16  |  10.3 KB  |  326 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky10.ogg")
  8.     local pokus = getRestartCount()
  9.  
  10.  
  11.     -- -------------------------------------------------------------
  12.     local function prog_init_room()
  13.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  14.  
  15.         room.posl = 2
  16.         pom1 = 0
  17.         local rand1 = random(pokus + 1)
  18.         if isIn(rand1, {0, 2, 4, 10, 20, 30, 50}) then
  19.             addv(random(30), "tru-v-nasly")
  20.             addm(7, "tru-m-co")
  21.             if random(2) == 1 then
  22.                 addv(10 + random(6), "tru-v-poklad")
  23.             else
  24.                 addv(10 + random(6), "tru-v-gral")
  25.             end
  26.             if random(5) == 1 then
  27.                 addm(7, "tru-m-zrada")
  28.             end
  29.             pom1 = 1
  30.         elseif isIn(rand1, {1, 3, 5, 11, 43}) then
  31.             addv(random(30), "tru-v-vkupe")
  32.             if random(3) > 0 then
  33.                 addm(8, "tru-m-zrada")
  34.             end
  35.             pom1 = 1
  36.         end
  37.         if pom1 == 1 then
  38.             addm(10 + random(10), "tru-m-oznamit")
  39.             if pokus < 3 or random(6) > 0 then
  40.                 addv(5 + random(5), "tru-v-stacit")
  41.                 addm(7 + random(6), "tru-m-zpochybnit")
  42.             end
  43.             addv(8 + random(9), "tru-v-nejspis")
  44.             if random(2) == 1 then
  45.                 addm(9, "tru-m-nejistota")
  46.             end
  47.         end
  48.  
  49.         return function()
  50.             if no_dialog() and isReady(small) and isReady(big) then
  51.                 pom1 = room.posl
  52.                 while pom1 == room.posl do
  53.                     pom1 = random(4)
  54.                 end
  55.                 room.posl = pom1
  56.                 switch(pom1){
  57.                     [0] = function()
  58.                         addm(500 + random(1000), "tru-m-truhla"..random(2))
  59.                         addv(10 + random(14), "tru-v-truhla"..random(2))
  60.                     end,
  61.                     [1] = function()
  62.                         addm(500 + random(1000), "tru-m-vzit"..random(3))
  63.                         addv(10, "tru-v-vzit"..random(3))
  64.                     end,
  65.                     [2] = function()
  66.                         addv(500 + random(1000), "tru-v-zrak")
  67.                     end,
  68.                     [3] = function()
  69.                         addm(500 + random(1000), "tru-m-trpyt")
  70.                     end,
  71.                 }
  72.             end
  73.         end
  74.     end
  75.  
  76.     -- -------------------------------------------------------------
  77.     local function prog_init_drahokamy()
  78.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  79.  
  80.         local gems = {}
  81.         for pom1 = 1, 10 do
  82.             gem = getModelsTable()[pom1]
  83.             gems[pom1] = gem
  84.             gem.glob = -random(100)
  85.         end
  86.  
  87.         return function()
  88.             for key, gem in pairs(gems) do
  89.                 gem.glob = gem.glob + 1
  90.                 if isIn(gem.glob, {1, 2, 3}) then
  91.                     gem.afaze = gem.afaze + 1
  92.                 elseif isIn(gem.glob, {4, 5, 6}) then
  93.                     gem.afaze = gem.afaze - 1
  94.                 elseif gem.glob == 7 then
  95.                     gem.glob = -random(100) - 10
  96.                 end
  97.                 gem:updateAnim()
  98.             end
  99.         end
  100.     end
  101.  
  102.     -- -------------------------------------------------------------
  103.     local function prog_init_prsten()
  104.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  105.  
  106.         prsten.afaze = 3
  107.         prsten:updateAnim()
  108.  
  109.         return function()
  110.             switch(prsten.afaze){
  111.                 [0] = function()
  112.                     if random(5) < 2 then
  113.                         prsten.afaze = 3
  114.                     else
  115.                         prsten.afaze = 1
  116.                     end
  117.                 end,
  118.                 [1] = function()
  119.                     if random(4) < 2 then
  120.                         prsten.afaze = 0
  121.                     else
  122.                         prsten.afaze = 2
  123.                     end
  124.                 end,
  125.                 [2] = function()
  126.                     if random(3) < 2 then
  127.                         prsten.afaze = 1
  128.                     end
  129.                 end,
  130.                 [4] = function()
  131.                     if random(5) < 2 then
  132.                         prsten.afaze = 3
  133.                     else
  134.                         prsten.afaze = 5
  135.                     end
  136.                 end,
  137.                 [5] = function()
  138.                     if random(4) < 2 then
  139.                         prsten.afaze = 4
  140.                     end
  141.                 end,
  142.                 [3] = function()
  143.                     switch(random(20)){
  144.                         [1] = function()
  145.                             prsten.afaze = 0
  146.                         end,
  147.                         [2] = function()
  148.                             prsten.afaze = 4
  149.                         end,
  150.                     }
  151.                 end,
  152.             }
  153.             prsten:updateAnim()
  154.         end
  155.     end
  156.  
  157.     -- -------------------------------------------------------------
  158.     local function prog_init_koruna1()
  159.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  160.  
  161.         koruna1.blesk = 0
  162.  
  163.         return function()
  164.             switch(koruna1.blesk){
  165.                 [0] = function()
  166.                     switch(random(20)){
  167.                         [1] = function()
  168.                             koruna1.blesk = 1
  169.                             koruna1.afaze = 1
  170.                         end,
  171.                         [2] = function()
  172.                             koruna1.blesk = 1
  173.                             koruna1.afaze = 4
  174.                         end,
  175.                     }
  176.                 end,
  177.                 [1] = function()
  178.                     switch(koruna1.afaze){
  179.                         [1] = function()
  180.                             koruna1.afaze = 2
  181.                         end,
  182.                         [2] = function()
  183.                             koruna1.afaze = 3
  184.                         end,
  185.                         [3] = function()
  186.                             koruna1.blesk = 2
  187.                         end,
  188.                         [4] = function()
  189.                             koruna1.afaze = 5
  190.                         end,
  191.                         [5] = function()
  192.                             koruna1.blesk = 2
  193.                         end,
  194.                     }
  195.                 end,
  196.                 [2] = function()
  197.                     switch(koruna1.afaze){
  198.                         [1] = function()
  199.                             koruna1.afaze = 0
  200.                         end,
  201.                         [0] = function()
  202.                             koruna1.blesk = 0
  203.                         end,
  204.                         [2] = function()
  205.                             koruna1.afaze = 1
  206.                         end,
  207.                         [3] = function()
  208.                             koruna1.afaze = 2
  209.                         end,
  210.                         [4] = function()
  211.                             koruna1.afaze = 0
  212.                         end,
  213.                         [5] = function()
  214.                             koruna1.afaze = 4
  215.                         end,
  216.                     }
  217.                 end,
  218.             }
  219.             koruna1:updateAnim()
  220.         end
  221.     end
  222.  
  223.     -- -------------------------------------------------------------
  224.     local function prog_init_koruna2()
  225.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  226.  
  227.         koruna2.blesk = 0
  228.  
  229.         return function()
  230.             switch(koruna2.blesk){
  231.                 [0] = function()
  232.                     switch(random(20)){
  233.                         [1] = function()
  234.                             koruna2.blesk = 1
  235.                             koruna2.afaze = 1
  236.                         end,
  237.                         [2] = function()
  238.                             koruna2.blesk = 1
  239.                             koruna2.afaze = 4
  240.                         end,
  241.                     }
  242.                 end,
  243.                 [1] = function()
  244.                     switch(koruna2.afaze){
  245.                         [1] = function()
  246.                             koruna2.afaze = 2
  247.                         end,
  248.                         [2] = function()
  249.                             koruna2.afaze = 3
  250.                         end,
  251.                         [3] = function()
  252.                             koruna2.blesk = 2
  253.                         end,
  254.                         [4] = function()
  255.                             koruna2.afaze = 5
  256.                         end,
  257.                         [5] = function()
  258.                             koruna2.blesk = 2
  259.                         end,
  260.                     }
  261.                 end,
  262.                 [2] = function()
  263.                     switch(koruna2.afaze){
  264.                         [1] = function()
  265.                             koruna2.afaze = 0
  266.                         end,
  267.                         [0] = function()
  268.                             koruna2.blesk = 0
  269.                         end,
  270.                         [2] = function()
  271.                             koruna2.afaze = 1
  272.                         end,
  273.                         [3] = function()
  274.                             koruna2.afaze = 2
  275.                         end,
  276.                         [4] = function()
  277.                             koruna2.afaze = 0
  278.                         end,
  279.                         [5] = function()
  280.                             koruna2.afaze = 4
  281.                         end,
  282.                     }
  283.                 end,
  284.             }
  285.             koruna2:updateAnim()
  286.         end
  287.     end
  288.  
  289.     -- --------------------
  290.     local update_table = {}
  291.     local subinit
  292.     subinit = prog_init_room()
  293.     if subinit then
  294.         table.insert(update_table, subinit)
  295.     end
  296.     subinit = prog_init_drahokamy()
  297.     if subinit then
  298.         table.insert(update_table, subinit)
  299.     end
  300.     subinit = prog_init_prsten()
  301.     if subinit then
  302.         table.insert(update_table, subinit)
  303.     end
  304.     subinit = prog_init_koruna1()
  305.     if subinit then
  306.         table.insert(update_table, subinit)
  307.     end
  308.     subinit = prog_init_koruna2()
  309.     if subinit then
  310.         table.insert(update_table, subinit)
  311.     end
  312.     return update_table
  313. end
  314. local update_table = prog_init()
  315.  
  316.  
  317. -- -----------------------------------------------------------------
  318. -- Update
  319. -- -----------------------------------------------------------------
  320. function prog_update()
  321.     for key, subupdate in pairs(update_table) do
  322.         subupdate()
  323.     end
  324. end
  325.  
  326.